{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Numerical operations on arrays"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Section contents\n",
    "\n",
    "* Elementwise operations\n",
    "* Basic reductions\n",
    "* Broadcasting\n",
    "* Array shape manipulation\n",
    "* Sorting data\n",
    "* Summary\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Elementwise operations"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Basic operations"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "With scalars:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2, 3, 4, 5])"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "a = np.array([1, 2, 3, 4])\n",
    "a + 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 2,  4,  8, 16])"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "2**a"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "All arithmetic operates elementwise:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-1.,  0.,  1.,  2.])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "b = np.ones(4) + 1\n",
    "b\n",
    "a - b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 2.,  4.,  6.,  8.])"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a * b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 2,  3,  6, 13, 28])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "j = np.arange(5)\n",
    "2**(j + 1) - j"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "These operations are of course much faster than if you did them in pure\n",
    "python:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The slowest run took 9.13 times longer than the fastest. This could mean that an intermediate result is being cached.\n",
      "100000 loops, best of 3: 6.14 µs per loop\n"
     ]
    }
   ],
   "source": [
    "a = np.arange(10000)\n",
    "%timeit a + 1 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1000 loops, best of 3: 413 µs per loop\n"
     ]
    }
   ],
   "source": [
    "l = range(10000)\n",
    "%timeit [i+1 for i in l] "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Warning"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array multiplication is not matrix multiplication:**\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1.,  1.,  1.],\n",
       "       [ 1.,  1.,  1.],\n",
       "       [ 1.,  1.,  1.]])"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "c = np.ones((3, 3))\n",
    "c * c            # NOT matrix multiplication!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Note"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Matrix multiplication:**\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 3.,  3.,  3.],\n",
       "       [ 3.,  3.,  3.],\n",
       "       [ 3.,  3.,  3.]])"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "c.dot(c)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise: Elementwise operations"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* Try simple arithmetic elementwise operations.\n",
    "\n",
    "* Time them against their pure python counterparts using `%timeit`.\n",
    "\n",
    "* Try using `dot`.\n",
    "\n",
    "* Generate:\n",
    "\n",
    "    * `[2**0, 2**1, 2**2, 2**3, 2**4]`\n",
    "\n",
    "    * `a_j = 2^(3*j) - j`\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Other operations"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Comparisons:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([False,  True, False,  True], dtype=bool)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = np.array([1, 2, 3, 4])\n",
    "b = np.array([4, 2, 2, 4])\n",
    "a == b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([False, False,  True, False], dtype=bool)"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a > b"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Logical operations:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ True,  True,  True, False], dtype=bool)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = np.array([1, 1, 0, 0], dtype=bool)\n",
    "b = np.array([1, 0, 1, 0], dtype=bool)\n",
    "np.logical_or(a, b)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ True, False, False, False], dtype=bool)"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.logical_and(a, b)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Transcendental functions:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.        ,  0.84147098,  0.90929743,  0.14112001, -0.7568025 ,\n",
       "       -0.95892427, -0.2794155 ,  0.6569866 ,  0.98935825,  0.41211849])"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = np.arange(10)\n",
    "np.sin(a)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Python/2.7/site-packages/ipykernel/__main__.py:1: RuntimeWarning: divide by zero encountered in log\n",
      "  if __name__ == '__main__':\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([       -inf,  0.        ,  0.69314718,  1.09861229,  1.38629436,\n",
       "        1.60943791,  1.79175947,  1.94591015,  2.07944154,  2.19722458])"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.log(a)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([  1.00000000e+00,   2.71828183e+00,   7.38905610e+00,\n",
       "         2.00855369e+01,   5.45981500e+01,   1.48413159e+02,\n",
       "         4.03428793e+02,   1.09663316e+03,   2.98095799e+03,\n",
       "         8.10308393e+03])"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.exp(a)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Shape mismatches\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0 1 2 3]\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[2, 3, 5],\n",
       "       [3, 4, 6],\n",
       "       [4, 5, 7],\n",
       "       [5, 6, 8]])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = np.arange(4)\n",
    "print a\n",
    "a.reshape(4,1) + np.array([2,3,5])  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Broadcasting?** We'll return to that shortly\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Transposition:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.,  1.,  1.],\n",
       "       [ 0.,  0.,  1.],\n",
       "       [ 0.,  0.,  0.]])"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = np.triu(np.ones((3, 3)), 1)   # see help(np.triu)\n",
    "a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.,  0.,  0.],\n",
       "       [ 1.,  0.,  0.],\n",
       "       [ 1.,  1.,  0.]])"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a.T"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Tip"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Array-wise comparisons:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = np.array([1, 2, 3, 4])\n",
    "b = np.array([4, 2, 2, 4])\n",
    "c = np.array([1, 2, 3, 4])\n",
    "np.array_equal(a, b)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.array_equal(a, c)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Note"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Linear algebra**\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The sub-module ``numpy.linalg`` implements basic linear algebra,\n",
    "such as solving linear systems, singular value decomposition, etc.\n",
    "However, it is not guaranteed to be compiled using efficient routines,\n",
    "and thus we recommend the use of ``scipy.linalg``, as detailed in\n",
    "section ``scipy_linalg``\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise other operations"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* Look at the help for `np.allclose`. When might this be useful?\n",
    "\n",
    "* Look at the help for `np.triu` and `np.tril`.\n",
    "\n",
    "* Is the transpose a view or a copy? What implications does this have for\n",
    "making a matrix symmetric?\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Basic reductions"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Computing sums:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = np.array([1, 2, 3, 4])\n",
    "np.sum(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x.sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Sum by rows and by columns:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 1],\n",
       "       [2, 2]])"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = np.array([[1, 1], [2, 2]])\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([3, 3])"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x.sum(axis=0)   # columns (first dimension)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(3, 3)"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[:, 0].sum(), x[:, 1].sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2, 4])"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x.sum(axis=1)   # rows (second dimension)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(2, 4)"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[0, :].sum(), x[1, :].sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Tip"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Same idea in higher dimensions:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.41573970429480855"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = np.random.rand(2, 2, 2)\n",
    "x.sum(axis=2)[0, 1]     "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.41573970429480855"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[0, 1, :].sum()     "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Other reductions"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "--- works the same way (and take `axis=`)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Statistics:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.75"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = np.array([1, 2, 3, 1])\n",
    "y = np.array([[1, 2, 3], [5, 6, 1]])\n",
    "x.mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.5"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.median(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 2.,  5.])"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.median(y, axis=-1) # last axis"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.82915619758884995"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x.std()          # full population standard dev."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Extrema:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = np.array([1, 3, 2])\n",
    "x.min()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x.max()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x.argmin()  # index of minimum"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x.argmax()  # index of maximum"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Logical operations:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.all([True, True, False])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.any([True, True, False])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Note"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Can be used for array comparisons:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = np.zeros((100, 100))\n",
    "np.any(a != 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.all(a == a)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = np.array([1, 2, 3, 2])\n",
    "b = np.array([2, 2, 3, 2])\n",
    "c = np.array([6, 4, 4, 5])\n",
    "((a <= b) & (b <= c)).all()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "... and many more (best to learn as you go).\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise: Reductions"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* Given there is a `sum`, what other function might you expect to see?\n",
    "\n",
    "* What is the difference between `sum` and `cumsum`?\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Worked Example: data statistics"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Data in `data/populations.txt`\n",
    "describes the populations of hares and lynxes (and carrots) in northern\n",
    "Canada during 20 years.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You can view the data in an editor, or alternatively in IPython (both\n",
    "shell and notebook):\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "# year\thare\tlynx\tcarrot\r\n",
      "1900\t30e3\t4e3\t48300\r\n",
      "1901\t47.2e3\t6.1e3\t48200\r\n",
      "1902\t70.2e3\t9.8e3\t41500\r\n",
      "1903\t77.4e3\t35.2e3\t38200\r\n",
      "1904\t36.3e3\t59.4e3\t40600\r\n",
      "1905\t20.6e3\t41.7e3\t39800\r\n",
      "1906\t18.1e3\t19e3\t38600\r\n",
      "1907\t21.4e3\t13e3\t42300\r\n",
      "1908\t22e3\t8.3e3\t44500\r\n",
      "1909\t25.4e3\t9.1e3\t42100\r\n",
      "1910\t27.1e3\t7.4e3\t46000\r\n",
      "1911\t40.3e3\t8e3\t46800\r\n",
      "1912\t57e3\t12.3e3\t43800\r\n",
      "1913\t76.6e3\t19.5e3\t40900\r\n",
      "1914\t52.3e3\t45.7e3\t39400\r\n",
      "1915\t19.5e3\t51.1e3\t39000\r\n",
      "1916\t11.2e3\t29.7e3\t36700\r\n",
      "1917\t7.6e3\t15.8e3\t41800\r\n",
      "1918\t14.6e3\t9.7e3\t43300\r\n",
      "1919\t16.2e3\t10.1e3\t41300\r\n",
      "1920\t24.7e3\t8.6e3\t47300\r\n"
     ]
    }
   ],
   "source": [
    "!cat data/populations.txt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First, load the data into a Numpy array:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = np.loadtxt('data/populations.txt')\n",
    "year, hares, lynxes, carrots = data.T  # trick: columns to variables"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Then plot it:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x10f8bc710>"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from matplotlib import pyplot as plt\n",
    "plt.axes([0.2, 0.1, 0.5, 0.8]) \n",
    "plt.plot(year, hares, year, lynxes, year, carrots) \n",
    "plt.legend(('Hare', 'Lynx', 'Carrot'), loc=(1.05, 0.5)) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The mean populations over time:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 34080.95238095,  20166.66666667,  42400.        ])"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "populations = data[:, 1:]\n",
    "populations.mean(axis=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The sample standard deviations:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 20897.90645809,  16254.59153691,   3322.50622558])"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "populations.std(axis=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Which species has the highest population each year?:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2, 2, 0, 0, 1, 1, 2, 2, 2, 2, 2, 2, 0, 0, 0, 1, 2, 2, 2, 2, 2])"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.argmax(populations, axis=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Broadcasting"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* Basic operations on `numpy` arrays (addition, etc.) are elementwise\n",
    "\n",
    "* This works on arrays of the same size.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The image below gives an example of broadcasting:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABNYAAAOCCAIAAAA0r8iHAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A\n/wD/oL2nkwAAAAlwSFlzAAAN1wAADdcBQiibeAAAAAd0SU1FB9sIFQsuNity2XQAACAASURBVHja\n7N15XI3p/z/w66ztuyRElCVrGVJiKiVJRNbsYzCDGTsRY5dkDTP2jxj7mn0rKVKphLShBaW0K+1n\n+f1xP77n0W8k4XRfqdfzj3kcp5vznutcnXO/7vtaOFKplAAAAAAAAADUPS6aAAAAAAAAABBBAQAA\nAAAAABEUAAAAAAAAABEUAAAAAAAAEEEBAAAAAAAAERQAAAAAAAAAERQAAAAAAAAQQQEAAAAAAAAQ\nQQEAAAAAAAARFAAAAAAAABBBAQAAAAAAABBBAQAAAAAAABEUAAAAAAAAABEUAAAAAAAAEEEBAAAA\nAAAAERQAAAAAAAAAERQAAAAAAAAQQQEAAAAAAAAQQQEAAAAAAAARFAAAAAAAABBBAQAAAAAAABBB\nAQAAAAAAABEUAAAAAAAAABEUAAAAAAAAEEEBAAAAAAAAERQAAAAAAAAAERQAAAAAAAAQQQEAAAAA\nAAAQQQEAAAAAAAARFAAAAAAAABBBAQAAAAAAABBBAQAAAAAAABEUAAAAAAAAABEUAAAAAAAAEEEB\nAAAAAAAAERQAAAAAAAAAERQAAAAAAAAQQQEAAAAAAAAQQQEAAAAAAAARFAAAAAAAABBBAQAAAAAA\nABBBAQAAAAAAABEUAAAAAAAAABEUAAAAAAAAEEEBAAAAAAAAERQAAAAAAAAAERQAAAAAAAAQQQEA\nAAAAAAAQQQEAAAAAAAARFAAAAAAAABBBAQAAAAAAABBBAQAAAAAAABEUAAAAAAAAABEUAAAAAAAA\nEEEBAAAAAAAAERQAAAAAAAAAERQAAAAAAAAQQQEAAAAAAAAQQQEAAAAAAAARFAAAAAAAABBBAQAA\nAAAAABBBAQAAAAAAABEUAAAAAAAAABEUAAAAAAAAEEEBAAAAAAAAERQAAAAAAAAAERQAAAAAAAAQ\nQQEAAAAAAAAQQQEAAAAAAAARFAAAAAAAABBBAQAAAAAAABBBAQAAAAAAABEUAAAAAAAAABEUAAAA\nAAAAEEEBAAAAAAAAERQAAAAAAAAAERQAAAAAAAAQQQEAAAAAAAAQQQEAAAAAAAARFAAAAAAAABBB\nAQAAAAAAABBBAQAAAAAAABEUAAAAAAAAABEUAAAAAAAAEEEBAAAAAAAAERQAAAAAAAAAERQAAAAA\nAAAQQQEAAAAAAAAQQQEAAAAAAAARFAAAAAAAABBBAQAAAAAAABBBAQAAAAAAABEUAAAAAAAAABEU\nAAAAAAAAEEEBAAAAAAAAERQAAAAAAAAAERQAAAAAAAAQQQEAAAAAAAAQQQEAAAAAAAARFAAAAAAA\nABBBAQAAAAAAABBBAQAAAAAAABEUAAAAAAAAABEUAAAAAAAA6gU+muCrvHjx4vHjx3RrePTokbGx\nsba2NsUanj59qqur27x582p/qqSk5OLiIvvjnTt3cnNz5V5DWlraxIkT9fT00C0BAAAAAH4UHKlU\nilaopYCAABcXl+LiYsrvGYf+u8bj8cRi8ed+qq+v/+7dO9kfe/fu/ejRo7ooY8qUKYcPH0bPBAAA\nAAD4UeAuaG1dvXp15MiRDg4Ox48fFwgEVGqws7MLDQ2dNm2aj48Ph8OhUsPIkSNv3LgxdOjQo0eP\n8vn8z4Xkqn+8f/++RCKRYw2TJk06e/YsIaRDhw7omQAAAAAAiKANzZkzZyZMmODq6vrvv//Syp89\ne/aMioqaO3fujh07aLVD//797927N378eF9fXx6PV8u/JRQK5VjD8OHD/fz8Fi9efPToUfRM9t29\nezcrK4tiARKJJDAw0M7Ojm47BAQE2NjYfPG3YNCgQRoaGug2AFAXMjIygoOD6Q6MiouLU1ZWNjQ0\npFhDcnJyeXm5iYnJN/8LXbt27dy5M3oUACJoPeLr6ztt2rRJkyYdPHiQy6WzgFPnzp3j4uKWLl26\nceNGWu3AjKf9/fff//nnH1r3YB0cHO7cubNy5co1a9YggrJv2bJlXl5edGvgcrkSieTgwYPUW6M2\nNTx//hwRlGWVlZXXr18vLS2lWENBQUFCQoKFhQXFGkpLSyMjI/v160exhpKSEhUVlTFjxqBb1oX4\n+Hh7e/uq016oqHliDkvnsny+SCT6nn9h3bp1iKAAbMJc0C/4+++///zzz1mzZu3atYtW7jIyMkpO\nTl6zZs3KlStptQOTgRcuXLhlyxZaNfTt2zckJMTLy8vd3Z0Q0qxZs3nz5i1duhS9lAVSqXTu3Lm7\nd+/euXPntGnTqNRQWFjYpk2bioqKU6dODR48mEoNFRUVrVq1Kiws3Ldv38SJE794vIKCAq3Pjcap\ntLR0xIgRN27coFuGQCCorKz80U/K5VIDj8crKytDz5S76OhoBwcHfX3969evN2nShEoNM2bMOHHi\nhK2t7blz5xQUFKjUsHr16q1bt3bq1OnmzZtaWlrf01c/N7cIAOrkCwJNUINNmzYtXbrU3d2d4p2f\nli1bpqenb968edGiRbRqaNOmTWpqKnPvkVYNPXv2fPz4sY+Pz5w5c9AzWSaRSKZPn+7r63vo0KFf\nfvmFSg05OTlt2rQRiUSXLl1ycnKiUsPHjx9btGhRWlp67NixcePG0Xo7KioqpFIpEzCEQiEibtU3\naMiQIY8ePbp586a1tTWVGgIDA4cNG6ahoeHv79++fXsqNcTFxVlaWvL5/Nu3b1taWlKpITIy0sHB\nobS0VFlZGT1T7sLCwgYNGtSuXbubN2/SWh5/1KhRFy5cGDJkyJkzZ+Q73ab25s6d+/fff/fs2fPW\nrVu0xpuIRCKxWMwMkeNwOMixALUlhc9YsWIFIWTt2rUUa2jatCmHw9m9ezfFGpo1a0YI8fb2plWA\nWCzu3Lkzh8PZv39/1ef19PQ2btyIjlrXKisrx44dKxAITp8+TauGd+/eKSoqKioq+vv706ohJydH\nSUmJz+dfvHiRVg3v379v0qSJsrJyUFBQaGgoISQ+Ph5dlJGfn29hYaGurn7//n1aNfj5+QkEgubN\nm798+ZJWDeHh4UKhUF1dPTw8nFYN9+7dU1BQaNu27fz58zU0NNA55SswMFBVVbVfv34fPnygVYOD\ngwOHw3Fzc6usrKRVw5QpU3g8no2NzcePH2nV8Ouvv3I4nGnTponFYmtr68mTJ6N/AtQSImj15s2b\nRwjZtm0brQIqKiq0tLQ4HM7Bgwdp1SASibS1tTkczt9//02xHdq1a8flco8ePfqfHyGCsqCsrGzo\n0KEKCgqXL1+mVUNycrKioqKKigrFaJGWlqaoqKigoHDz5k2KNWhqaqqpqYWFhUmlUkTQqrKyskxN\nTXV0dCIiImjVcOTIEYFAYGho+Pr1a1o1+Pv7C4VCHR2dJ0+e0Krh6tWrQqGwY8eOGRkZ27dvRwSV\nr+vXrysqKjo4OBQXF9OqoU+fPrLcRauGESNGcLlcJyen0tJSWjWMGjWKEDJv3jzmj4igAIig30Us\nFk+fPp3L5e7bt49WDSUlJerq6lwu99ixY9Rr8PX1pVVDaWlp69ateTzemTNnPv0pImhdKy4uHjBg\n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\nGBkZ0VsRFRWVjRs34lRpLlRVVV1cXPbu3RsXF4dsoARtpd69e2dra2tkZKShocHejsiMyaQdUNmL\nK+bunBCSlZVFN7p27drgGOLi4qytrfX09AwNDdln7Wfmt6gnhtraWqYUpPPCNczr169tbGwMDQ01\nNTXZ51p8+/Ytz/LwK8XFxWPGjHn06FFISAizcA40KqZTN++7WzdZ58+ft7a2pvNw9OnT58iRI7yP\nARPJEELS09PpBovFUlRUZC5N/3mnnpuby34+c+LVq1fMtpKSEnsM9TffcLEFh8mDgIBAp06d2Acp\n1J+H7OxsZng/NAtM4ffTCzLh3jCcZiQpKcnIyIiuziItLe3v78+XJOCa3GCrVq0aMGCAnZ0dBlih\nBG2lOnbseOnSpcjIyKSkpKNHjzK3F+Hh4XSb6QQ4a9YsuuHv70/7oEZERNAqUUxMbNq0aQ2OQUZG\n5vz589HR0VFRUZcuXaI7Q0JCmLucH2M4fvw4vek5efIk/U7q3LmziYkJJ3m4cOFCVFRUQkICs8xd\nUlISM+fnjzGcOXMmPz+fEBIcHEzveCQlJSdNmsTdP1BBQcHIkSMTExPv3r1LF84BHmB6ffO4u3WT\ndfXq1VmzZtExflpaWlFRUew397zx+vVrW1vb3r17M6sHt04LFy709/e3sLAQEBDYu3dvz549mWl4\n6r9TFxIS4lYHQisrqwsXLtjY2IiIiHh5efXs2ZMZfll/8w0XW3CWLVt2/vz5CRMmEEJ27NjRs2fP\nFy9e/E4eRERE6AxGuClvGRdkFovF9E5qJV6/fm1iYkLb32VlZSMiIgYNGsTjGOrq6pYvX/7kyRNm\npDf8EUFBQT8/v5SUlJ07dyIbKEFbI1FRUQcHB7q9fv36/v37jx07Vl1dnbbKKCkpMbNfmJub9+jR\ngxBSVFSko6MzY8YMZm0GOzs79kbuP9W9e3fmEmZpaamrq2tgYMD08dPU1GSWZHRwcJCQkCCEZGRk\nDBo0aNq0acxCc8uXL2/Tpk2DY5CUlJwzZw7zT2lpaY0ePbpfv360sbxr167MnP7Tpk2jFUheXt7g\nwYOnT5/OhDd//nxpaWku/nVycnKMjY3T09Pv3bvH+y+YVt40Qzd42d26yQoNDbWysqL1p76+fkRE\nBO8nvUhOTjYwMGjfvn1kZKSIiEhrPjnt7OysrKyuXLlibm5OT0tmScz679Q7duzIrdJr+vTp06ZN\n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\ncDExsYMHD+rp6TFH7t69+9WrV/Hx8Xl5ef7+/nSnrKysh4cHh9XRsGHDPDw8Fi1aVFNTk5OTwzRP\nCAkJbd26lc6NxFQL//777927d4uLi5nDJCQkjhw5wuGfcubMmQkJCfv27SOEfPz4MTAwkO4XFxc/\nevQo+5rJ+/fvT09Pf/78eU5ODpMHeXl5ZtokLt47uri4uLq6Ojk54bLZeGRkZO7cuePu7h4cHBwX\nFycvL6+tre3o6Ni7d2++xKOurk6vyZqamrx5x6qqKqanwK803rdDbm6umZnZmzdvIiIivhuaBJwT\nFRX19fXV19c/evTookWLkJCWDB1x0RG3CXbEjY+P79Chg7a2dk5ODvoq8L0jLncRzjricq5hHXG5\n6/c74l65cqVNmzbTp0+nd10t3n92xKViYmImTZqkoqIiLi6uoaFha2ubnp7+42FlZWWbNm3S09Nr\n166dhobG3LlzP3z48J8x/GdHXObTNGPGDDU1NXFxcXV1dSsrq8TExB8Pq66u3rNnj5GRkZSUVK9e\nvaytrZOTk//zH//PjrhUdHT0xIkTe/ToIS4u3r9/fzs7u3fv3v14WGlpqZOTk66urqSkZP/+/e3t\n7TMzM/8zhj/qiLtq1SpCiLu7Oy6zjd0Rl7s474jLuQZ0xOW63+yIm5WVpaGh0bFjx6SkJJzAjWfJ\nkiVt27b96dUMWgw8BYUm5/Hjx6NHj+7Tp09wcHC7du2QEGi1/P39Z82aNXPmTB8fn0Zdv7HZGTx4\n8OXLl3+nQd3FxcXFxaUxYujdu/fv9AYUFBRcs2YNdycJZ38ee+3atf88TExMzNXVtfEashcuXOjl\n5eXl5TVv3jycnNBS0TVgysvL//nnn++mhwTu2rlz582bN+fNmxcaGopstFS4p4Gm5f79+6amplpa\nWiEhIag/oTXz8/P7+++/58+f7+vri/oTmqaamhobGxsfH58zZ86g/oQWLD09ffjw4bW1tag/eUBC\nQsLHxycsLIxO+wwoQQEaV2hoKOZcASCEHD16dO7cuStWrDhy5AimdYGmqbKy0tLS8sKFCxcvXpwx\nYwYSAi1VSkqKvr6+hIQEJkfkmREjRsydO3fVqlXsC0oBSlAA7rt58+aECRPMzMyuXbsmKiqKhECr\ntW/fvkWLFjk7O7u5uSEb0DSVlZWZm5sHBwffuHHDwsICCYGW6unTp/r6+h07doyKimLWJAMecHNz\n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\nWXXkxo0bf/nLXwohNE07ffq0yp8vvvhifn5+GItUXV397W9/u6Sk5NSpU+RPANPWs88+q95htrS0\nnDp1SubPWbNmvfHGG6ETkxw+fFh2uO3u7n7zzTfl+5PS0tLf/OY3YyxDfn6+Og+7XC6VP00mk8Vi\nUdlSr9cXFxfLmOd2u+12u5y4Ljk5eewjJHNzc9UoOLfbHZo/LRZLaLYsKiqSHW5HR0ftdrvsuJuQ\nkBDe6CI7Sdrt9pKSEvJn2GVmZsqXfoFAwGazdXV1yWafkZGh3nhPbaETbQSDQf9nhPaKDzu73V5f\nX6/X61esWEH+BO4Cb0G/rMWLFzc3N+/du/fs2bPNzc3JyclFRUXbt29fv3596GE6nW737t2rV6/+\ny1/+cvHiRYPBUF5evmPHDtVBNyz+9a9/bdq0adWqVW+99RZ9PwBMZzqd7rXXXtu2bdsrr7zS0NDg\ncDjy8/NXrFjx9NNPqx6wUkVFRU1NTWVl5aefftrS0lJYWPj1r3/9mWeeUX0a75rsB9jf33/z5k23\n261pmslkSk5O/uy7zZSUlCVLlthsNqfTOTo6GhcXl5KSkp2dHZaekxaL5fbt2z09PW632+/3m0ym\npKSknJycO5ZaSUxMlGUYHh72eDxms1keNpbXsJ/Nn5cvXx4aGlq0aFFycjKtNOyioqLKysra2tpu\n3rwph/XGxsZmZ2dHZEiOTqdTMWxi+gAHg8HBwcEvzn7jV5KbN282NjYajcaVK1fSFAEi6LhLSEiQ\n3b3+rwceeOCBBx4Yp2IcP3784Ycf3rhx4+uvv86zNwAQQqxdu3bt2rX/97DU1NTdu3ePUxnS09O/\nzGycMTEx4e0Uc8cvmJqa+n8PMxqN8+fPH6cyyElKXS5XWVnZNHkjFxE6nS43Nzc3N9fr9ep0uvB2\nov5KjEbjihUrJvh3X7ZsWUR+2Z6enuvXrxsMBvInMBZ0xL3HvP7665s3b37ooYf++te/kj8BAJOK\nz+erq6sbGRkpLy8nf06M6OjoCObPaaWzs/P69evR0dH3338/tQEQQaeLqqqqRx55ZPv27a+++qrB\nwBtsAMAk4vV66+rqvF5veXl5XFwcFYKppL29vaWlxWQyTfArX4AIikj6/e9/v2PHjp///OcHDhwI\n44gdAADGbnR0tLa2NhAIlJeXm81mKgRTyY0bN9ra2uLj4yPVARgggiICKisrn3zyyV27du3du5fa\nAABMKm63u7a2VqfTLV68eOzTOwGTSlNTU0dHR1JS0pIlS6gNICzozHkP2LVr1/PPP//SSy899dRT\n1AYAYFIZGRmpq6uLjo4uLS1lUCKmkmAweP369d7e3rS0tJKSEioEIIJOFzt37ty3b9/+/fufeOIJ\nagMAMKk4nU6r1WoymRYtWsQkBZhi+fPatWt2uz09Pd1isVAhABF0WtA07fHHH6+qqnr11VfVwusA\nAEwSQ0ND9fX18fHxJSUld6w+Ctzr92BXrlwZGBjIyMgoLCykQgAi6LTg9/u3bdv2xhtvHD16dPPm\nzVQIAGBScTgcly9fTk5OtlgsTJKHqSQQCFy+fHlwcDA7O3v8VtAFiKCYXLxe75YtW06ePPn3v/99\nw4YNVAgAYFK5devW1atX09LSiouLdTodFYIpw+/3W61Wp9OZm5ubk5NDhQBE0GnB7XY/+OCDH3zw\nwYkTJ775zW9SIQCASaW/v//atWszZ84sLCwkf2Iq8fl8VqvV5XLl5eXNnj2bCgGIoNOC0+ncsGGD\n1Wo9derU8uXLqRAAwKRy8+bNxsbGrKys/Px8agNTidfrbWxsdLvdBQUFmZmZVAhABJ0uHnvsMZ1O\nd+bMmbKyMmoDADCpDA4O2u32nJycvLw8agNhFAwGI16G+vp6TdNKSkpSU1P5RIBxpZsMf/OToiJ0\nupKSkuzs7EgVwOFwfPLJJ+np6efOnSsqKuITAQAhxJo1a65fv75o0aIIlqGurm7evHmHDh2KYBkc\nDofRaIyLi4tgGQYGBoLB4Lx58+bOnUvLDJfW1taOjo7k5ORIdWkOBAKDg4Px8fFGozFSZRgYGDAY\nDPHx8ZEqgNPp9Hq9er2+pKQkJSWFZgkQQSfIH//4x+rq6ggWIBgMtrS0HDlypKCggI8DAKQzZ84c\nPHgwsmXw+/2bNm2qqKiIYBlGRkaEEGazOYJl8Hq9SUlJubm5NMswGhwcbGhoiOzNmNfrjYqKiuCy\nOoFAQNM0o9EYwUrw+XxlZWWJiYm0SYAICgAAAACYOljICwAAAABABAUAAAAAEEEBAAAAACCCAgAA\nAACIoAAAAAAAIihVAAAAAAAgggIAAAAAiKAAAAAAABBBAQAAAABEUAAAAAAAERQAAAAAACIoAAAA\nAIAICgAAAAAAERQAAAAAQAQFAAAAABBBAQAAAAAgggIAAAAAiKAAAAAAABBBAQAAAABEUAAAAAAA\nERQAAAAAACIoAAAAAIAICgAAAAAAERQAAAAAQAQFAAAAABBBAQAAAAAgggIAAAAAAXAAlAAAAeRJ\nREFUiKAAAAAAABBBAQAAAABEUAAAAAAAERQAAAAAACIoAAAAAIAICgAAAAAAERQAAAAAQAQFAAAA\nABBBAQAAAAAgggIAAAAAiKAAAAAAABBBAQAAAABEUAAAAAAAERQAAAAAACIoAAAAAIAICgAAAAAA\nERQAAAAAQAQFAAAAABBBAQAAAAAgggIAAAAAiKAAAAAAABBBAQAAAABEUAAAAAAAERQAAAAAACIo\nAAAAAIAICgAAAAAAERQAAAAAQAQFAAAAABBBAQAAAAAgggIAAAAAiKAAAAAAABBBAQAAAABEUAAA\nAAAAERQAAAAAACIoAAAAAIAICgAAAAAAERQAAAAAQAQFAAAAABBBAQAAAAAgggIAAAAAiKAAAAAA\nABBBAQAAAABEUAAAAAAAERQAAAAAACIoAAAAAIAICgAAAAAAERQAAAAAQAQFAAAAABBBAQAAAAAg\nggIAAAAAiKAAAAAAABBBAQAAAABEUAAAAAAAERQAAAAAACIoAAAAAIAICgAAAAAAERQAAAAAQAQF\nAAAAABBBAQAAAAAgggIAAAAAiKAAAAAAABBBAQAAAABEUAAAAAAAERQAAAAAACIoAAAAAIAICgAA\nAAAAERQAAAAAQAQFAAAAABBBAQAAAAAYD/8FiNe802d9d/UAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from IPython.display import Image\n",
    "Image(filename='images/numpy_broadcasting.png')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's verify:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0,  0,  0],\n",
       "       [10, 10, 10],\n",
       "       [20, 20, 20],\n",
       "       [30, 30, 30]])"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = np.tile(np.arange(0, 40, 10), (3, 1)).T\n",
    "a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0,  1,  2],\n",
       "       [10, 11, 12],\n",
       "       [20, 21, 22],\n",
       "       [30, 31, 32]])"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "b = np.array([0, 1, 2])\n",
    "a + b"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We have already used broadcasting without knowing it!:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 2.,  2.,  2.,  2.,  2.],\n",
       "       [ 1.,  1.,  1.,  1.,  1.],\n",
       "       [ 1.,  1.,  1.,  1.,  1.],\n",
       "       [ 1.,  1.,  1.,  1.,  1.]])"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = np.ones((4, 5))\n",
    "a[0] = 2  # we assign an array of dimension 0 to an array of dimension 1\n",
    "a"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "An useful trick:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(4,)"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = np.arange(0, 40, 10)\n",
    "a.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(4, 1)"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = a[:, np.newaxis]  # adds a new axis -> 2D array\n",
    "a.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0],\n",
       "       [10],\n",
       "       [20],\n",
       "       [30]])"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0,  1,  2],\n",
       "       [10, 11, 12],\n",
       "       [20, 21, 22],\n",
       "       [30, 31, 32]])"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a + b"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Tip"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Broadcasting seems a bit magical, but it is actually quite natural to\n",
    "use it when we want to solve a problem whose output data is an array\n",
    "with more dimensions than input data.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Worked Example: Broadcasting"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's construct an array of distances (in miles) between cities of Route\n",
    "66: Chicago, Springfield, Saint-Louis, Tulsa, Oklahoma City, Amarillo,\n",
    "Santa Fe, Albuquerque, Flagstaff and Los Angeles.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[   0,  198,  303,  736,  871, 1175, 1475, 1544, 1913, 2448],\n",
       "       [ 198,    0,  105,  538,  673,  977, 1277, 1346, 1715, 2250],\n",
       "       [ 303,  105,    0,  433,  568,  872, 1172, 1241, 1610, 2145],\n",
       "       [ 736,  538,  433,    0,  135,  439,  739,  808, 1177, 1712],\n",
       "       [ 871,  673,  568,  135,    0,  304,  604,  673, 1042, 1577],\n",
       "       [1175,  977,  872,  439,  304,    0,  300,  369,  738, 1273],\n",
       "       [1475, 1277, 1172,  739,  604,  300,    0,   69,  438,  973],\n",
       "       [1544, 1346, 1241,  808,  673,  369,   69,    0,  369,  904],\n",
       "       [1913, 1715, 1610, 1177, 1042,  738,  438,  369,    0,  535],\n",
       "       [2448, 2250, 2145, 1712, 1577, 1273,  973,  904,  535,    0]])"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mileposts = np.array([0, 198, 303, 736, 871, 1175, 1475, 1544,\n",
    "       1913, 2448])\n",
    "distance_array = np.abs(mileposts - mileposts[:, np.newaxis])\n",
    "distance_array"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nAABJRU5ErkJggg==\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from IPython.display import Image\n",
    "Image(filename='images/route66.png')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A lot of grid-based or network-based problems can also use broadcasting.\n",
    "For instance, if we want to compute the distance from the origin of\n",
    "points on a 10x10 grid, we can do\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.        ,  1.        ,  2.        ,  3.        ,  4.        ],\n",
       "       [ 1.        ,  1.41421356,  2.23606798,  3.16227766,  4.12310563],\n",
       "       [ 2.        ,  2.23606798,  2.82842712,  3.60555128,  4.47213595],\n",
       "       [ 3.        ,  3.16227766,  3.60555128,  4.24264069,  5.        ],\n",
       "       [ 4.        ,  4.12310563,  4.47213595,  5.        ,  5.65685425]])"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x, y = np.arange(5), np.arange(5)[:, np.newaxis]\n",
    "distance = np.sqrt(x ** 2 + y ** 2)\n",
    "distance"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Or in color:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.colorbar.Colorbar at 0x10f8bc1d0>"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plt.pcolor(distance)    \n",
    "plt.colorbar()    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Remark** : the `numpy.ogrid` function allows to directly create\n",
    "vectors x and y of the previous example, with two \"significant\n",
    "dimensions\":\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([[0],\n",
       "        [1],\n",
       "        [2],\n",
       "        [3],\n",
       "        [4]]), array([[0, 1, 2, 3, 4]]))"
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x, y = np.ogrid[0:5, 0:5]\n",
    "x, y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((5, 1), (1, 5))"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x.shape, y.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [],
   "source": [
    "distance = np.sqrt(x ** 2 + y ** 2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Tip"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "So, `np.ogrid` is very useful as soon as we have to handle computations\n",
    "on a grid. On the other hand, `np.mgrid` directly provides matrices full\n",
    "of indices for cases where we can't (or don't want to) benefit from\n",
    "broadcasting:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0, 0, 0, 0],\n",
       "       [1, 1, 1, 1],\n",
       "       [2, 2, 2, 2],\n",
       "       [3, 3, 3, 3]])"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x, y = np.mgrid[0:4, 0:4]\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0, 1, 2, 3],\n",
       "       [0, 1, 2, 3],\n",
       "       [0, 1, 2, 3],\n",
       "       [0, 1, 2, 3]])"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Array shape manipulation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Flattening"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 2, 3, 4, 5, 6])"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = np.array([[1, 2, 3], [4, 5, 6]])\n",
    "a.ravel()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 4],\n",
       "       [2, 5],\n",
       "       [3, 6]])"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a.T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 4, 2, 5, 3, 6])"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a.T.ravel()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Higher dimensions: last dimensions ravel out \"first\".\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Reshaping"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The inverse operation to flattening:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(2, 3)"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2, 3],\n",
       "       [4, 5, 6]])"
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "b = a.ravel()\n",
    "b = b.reshape((2, 3))\n",
    "b"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Or,\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2, 3],\n",
       "       [4, 5, 6]])"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a.reshape((2, -1))    # unspecified (-1) value is inferred"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Warning"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`ndarray.reshape` **may** return a view (cf `help(np.reshape)`)), or\n",
    "copy\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Tip"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[99,  2,  3],\n",
       "       [ 4,  5,  6]])"
      ]
     },
     "execution_count": 79,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "b[0, 0] = 99\n",
    "a"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Beware: reshape may also return a copy!:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.,  0.],\n",
       "       [ 0.,  0.],\n",
       "       [ 0.,  0.]])"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = np.zeros((3, 2))\n",
    "b = a.T.reshape(3*2)\n",
    "b[0] = 9\n",
    "a"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To understand this you need to learn more about the memory layout of a\n",
    "numpy array.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Adding a dimension"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Indexing with the `np.newaxis` object allows us to add an axis to an\n",
    "array (you have seen this already above in the broadcasting section):\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 2, 3])"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "z = np.array([1, 2, 3])\n",
    "z"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1],\n",
       "       [2],\n",
       "       [3]])"
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "z[:, np.newaxis]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2, 3]])"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "z[np.newaxis, :]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Dimension shuffling"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(4, 3, 2)"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = np.arange(4*3*2).reshape(4, 3, 2)\n",
    "a.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a[0, 2, 1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(3, 2, 4)"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "b = a.transpose(1, 2, 0)\n",
    "b.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "b[2, 1, 0]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Also creates a view:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-1"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "b[2, 1, 0] = -1\n",
    "a[0, 2, 1]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Resizing"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Size of an array can be changed with `ndarray.resize`:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 1, 2, 3, 0, 0, 0, 0])"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = np.arange(4)\n",
    "a.resize((8,))\n",
    "a"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "However, it must not be referred to somewhere else:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0, 1],\n",
       "       [2, 3],\n",
       "       [0, 0],\n",
       "       [0, 0]])"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "b = a\n",
    "np.resize(a,(4,2))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise: Shape manipulations"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* Look at the docstring for `reshape`, especially the notes section which\n",
    "has some more information about copies and views.\n",
    "\n",
    "* Use `flatten` as an alternative to `ravel`. What is the difference?\n",
    "(Hint: check which one returns a view and which a copy)\n",
    "\n",
    "* Experiment with `transpose` for dimension shuffling.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Sorting data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Sorting along an axis:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[3, 4, 5],\n",
       "       [1, 1, 2]])"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = np.array([[4, 3, 5], [1, 2, 1]])\n",
    "b = np.sort(a, axis=1)\n",
    "b"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Note"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Sorts each row separately!\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In-place sort:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[3, 4, 5],\n",
       "       [1, 1, 2]])"
      ]
     },
     "execution_count": 99,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a.sort(axis=1)\n",
    "a"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Sorting with fancy indexing:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2, 3, 1, 0])"
      ]
     },
     "execution_count": 100,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = np.array([4, 3, 1, 2])\n",
    "j = np.argsort(a)\n",
    "j"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 2, 3, 4])"
      ]
     },
     "execution_count": 101,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a[j]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Finding minima and maxima:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0, 2)"
      ]
     },
     "execution_count": 102,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = np.array([4, 3, 1, 2])\n",
    "j_max = np.argmax(a)\n",
    "j_min = np.argmin(a)\n",
    "j_max, j_min"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Exercise: Sorting"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* Try both in-place and out-of-place sorting.\n",
    "\n",
    "* Try creating arrays with different dtypes and sorting them.\n",
    "\n",
    "* Use `all` or `array_equal` to check the results.\n",
    "\n",
    "* Look at `np.random.shuffle` for a way to create sortable input quicker.\n",
    "\n",
    "* Combine `ravel`, `sort` and `reshape`.\n",
    "\n",
    "* Look at the `axis` keyword for `sort` and rewrite the previous exercise.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Summary"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**What do you need to know to get started?**\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* Know how to create arrays : `array`, `arange`, `ones`, `zeros`.\n",
    "\n",
    "* Know the shape of the array with `array.shape`, then use slicing to\n",
    "obtain different views of the array: `array[::2]`, etc. Adjust the shape\n",
    "of the array using `reshape` or flatten it with `ravel`.\n",
    "\n",
    "* Obtain a subset of the elements of an array and/or modify their values\n",
    "with masks\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {},
   "outputs": [],
   "source": [
    "a[a < 0] = 0"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* Know miscellaneous operations on arrays, such as finding the mean or max\n",
    "(`array.max()`, `array.mean()`). No need to retain everything, but have\n",
    "the reflex to search in the documentation (online docs, `help()`,\n",
    "`lookfor()`)!!\n",
    "\n",
    "* For advanced use: master the indexing with arrays of integers, as well\n",
    "as broadcasting. Know more Numpy functions to handle various array\n",
    "operations.\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
